package command;

import beans.ListeUtilisateur;
import beans.UtilisateurBean;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.*;

/**
 * @author Antonin Mozzati
 * @author Yannick Schürter
 */
public class ConnectCommand implements Command {

    @Override
    public String getCommandName() {
        return "connectCommand";
    }

    @Override
    public ActionFlow actionPerform(HttpServletRequest request) {
        String vue = "index";
        String erreur = "erreur";

	System.out.println(this.getCommandName());
	
        HttpSession session = request.getSession(false);

        String login = request.getParameter("login");
        String password = request.getParameter("pass");
        
        ListeUtilisateur listeUtilisateur;
        try {
            //on récupère la liste utilisateur du ServletContext
            listeUtilisateur = (ListeUtilisateur) request.getServletContext().getAttribute("listeUtilisateur");
        } catch (Exception ex) {
            Logger.getLogger(ConnectCommand.class.getName()).log(Level.SEVERE, null, ex);
            return new ActionFlow(erreur, erreur+".html", true);
        }
        
        // vérification
        UtilisateurBean user = listeUtilisateur.getByLogin(login);
        if(user != null) {
            if(user.getMdp().equals(password)){
                session.setAttribute("sessionID", user.getId_utilisateur());
                session.setAttribute("sessionLogin", user.getLogin());
                session.setAttribute("sessionGroupe", user.getGroupeUtilisateur());
                System.out.println("Connection successful !");
            } else {
		request.setAttribute("erreurLogin", "Erreur : ce mot de passe incorrect.");
            }
        } else {
		request.setAttribute("erreurLogin", "Erreur : l'utilisateur n'existe pas.");
	}
        
        return new ActionFlow(vue, vue + ".jsp", false);
    }

}
